Fix an error in the cache timeout logic. (#166601, Morten Welinder)
authorMatthias Clasen <mclasen@redhat.com>
Thu, 23 Jun 2005 20:44:27 +0000 (20:44 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Thu, 23 Jun 2005 20:44:27 +0000 (20:44 +0000)
2005-06-23  Matthias Clasen  <mclasen@redhat.com>

* gtk/gtkfilesystemunix.c (gtk_file_system_unix_get_folder):
Fix an error in the cache timeout logic.  (#166601, Morten
Welinder)

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-8
gtk/gtkfilesystemunix.c

index 48f2512f782ebdbea5420772148de7ac89b59120..b7adf589fd902d592cac4c5a4757ccb35104a8ac 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2005-06-23  Matthias Clasen  <mclasen@redhat.com>
 
+       * gtk/gtkfilesystemunix.c (gtk_file_system_unix_get_folder): 
+       Fix an error in the cache timeout logic.  (#166601, Morten
+       Welinder)
+
        * gtk/gtktreeview.c (gtk_tree_view_key_press): Change the
        keynav for header reordering and resizing to Alt-arrows and
        Shift-Alt-arrows, following a proposal by the keynav 
index 48f2512f782ebdbea5420772148de7ac89b59120..b7adf589fd902d592cac4c5a4757ccb35104a8ac 100644 (file)
@@ -1,5 +1,9 @@
 2005-06-23  Matthias Clasen  <mclasen@redhat.com>
 
+       * gtk/gtkfilesystemunix.c (gtk_file_system_unix_get_folder): 
+       Fix an error in the cache timeout logic.  (#166601, Morten
+       Welinder)
+
        * gtk/gtktreeview.c (gtk_tree_view_key_press): Change the
        keynav for header reordering and resizing to Alt-arrows and
        Shift-Alt-arrows, following a proposal by the keynav 
index 48f2512f782ebdbea5420772148de7ac89b59120..b7adf589fd902d592cac4c5a4757ccb35104a8ac 100644 (file)
@@ -1,5 +1,9 @@
 2005-06-23  Matthias Clasen  <mclasen@redhat.com>
 
+       * gtk/gtkfilesystemunix.c (gtk_file_system_unix_get_folder): 
+       Fix an error in the cache timeout logic.  (#166601, Morten
+       Welinder)
+
        * gtk/gtktreeview.c (gtk_tree_view_key_press): Change the
        keynav for header reordering and resizing to Alt-arrows and
        Shift-Alt-arrows, following a proposal by the keynav 
index 097b9a82f32fcc9d9b185e343df8a524b2e12aed..49c298d8c30ed864043b43ff6dae97cd8293202b 100644 (file)
@@ -405,7 +405,7 @@ gtk_file_system_unix_get_folder (GtkFileSystem     *file_system,
   GtkFileFolderUnix *folder_unix;
   const char *filename;
   char *filename_copy;
-  time_t now = time (NULL);
+  gboolean set_asof = FALSE;
 
   system_unix = GTK_FILE_SYSTEM_UNIX (file_system);
 
@@ -419,8 +419,8 @@ gtk_file_system_unix_get_folder (GtkFileSystem     *file_system,
   if (folder_unix)
     {
       g_free (filename_copy);
-      if (now - folder_unix->asof >= FOLDER_CACHE_LIFETIME &&
-         folder_unix->stat_info)
+      if (folder_unix->stat_info &&
+         time (NULL) - folder_unix->asof >= FOLDER_CACHE_LIFETIME)
        {
 #if 0
          g_print ("Cleaning out cached directory %s\n", filename);
@@ -430,6 +430,7 @@ gtk_file_system_unix_get_folder (GtkFileSystem     *file_system,
          folder_unix->have_mime_type = FALSE;
          folder_unix->have_stat = FALSE;
          folder_unix->have_hidden = FALSE;
+         set_asof = TRUE;
        }
 
       g_object_ref (folder_unix);
@@ -486,11 +487,11 @@ gtk_file_system_unix_get_folder (GtkFileSystem     *file_system,
       folder_unix->filename = filename_copy;
       folder_unix->types = types;
       folder_unix->stat_info = NULL;
-      folder_unix->asof = now;
       folder_unix->have_mime_type = FALSE;
       folder_unix->have_stat = FALSE;
       folder_unix->have_hidden = FALSE;
-
+      set_asof = TRUE;
+         
       if ((system_unix->have_afs &&
           system_unix->afs_statbuf.st_dev == statbuf.st_dev &&
           system_unix->afs_statbuf.st_ino == statbuf.st_ino) ||
@@ -512,6 +513,9 @@ gtk_file_system_unix_get_folder (GtkFileSystem     *file_system,
   if ((types & GTK_FILE_INFO_MIME_TYPE) != 0)
     fill_in_mime_type (folder_unix);
 
+  if (set_asof)
+    folder_unix->asof = time (NULL);
+
   return GTK_FILE_FOLDER (folder_unix);
 }